66 research outputs found

    FacialSCDnet: A deep learning approach for the estimation of subject-to-camera distance in facial photographs

    Get PDF
    [Abstract]: Facial biometrics play an essential role in the fields of law enforcement and forensic sciences. When comparing facial traits for human identification in photographs or videos, the analysis must account for several factors that impair the application of common identification techniques, such as illumination, pose, or expression. In particular, facial attributes can drastically change depending on the distance between the subject and the camera at the time of the picture. This effect is known as perspective distortion, which can severely affect the outcome of the comparative analysis. Hence, knowing the subject-to-camera distance of the original scene where the photograph was taken can help determine the degree of distortion, improve the accuracy of computer-aided recognition tools, and increase the reliability of human identification and further analyses. In this paper, we propose a deep learning approach to estimate the subject-to-camera distance of facial photographs: FacialSCDnet. Furthermore, we introduce a novel evaluation metric designed to guide the learning process, based on changes in facial distortion at different distances. To validate our proposal, we collected a novel dataset of facial photographs taken at several distances using both synthetic and real data. Our approach is fully automatic and can provide a numerical distance estimation for up to six meters, beyond which changes in facial distortion are not significant. The proposed method achieves an accurate estimation, with an average error below 6 cm of subject-to-camera distance for facial photographs in any frontal or lateral head pose, robust to facial hair, glasses, and partial occlusion

    Caracterización en memoria de la suite de Benchmarks SPEC CPU2017

    Get PDF
    La investigación experimental en arquitectura de computadores se basa en alimentar a una máquina real o a un modelo de simulación con una carga de trabajo (workload) que nos permita evaluar ideas. La opción más habitual es usar una carga de trabajo consistente en un conjunto (suite) de programas de prueba (benchmarks) seleccionados para ser representativos del software contemporáneo o futuro a la fecha de selección. SPEC CPU es una de las suites de benchmarks más utilizadas en la investigación de arquitectura de computadores. La caracterización de estos programas es una de las primeras tareas a realizar por la comunidad de arquitectura de computadores. Entre los objetivos de los trabajos de caracterización podemos destacar la selección de muestras para simulación y la clasificación de programas según determinadas características. En este trabajo presentamos un análisis detallado del rendimiento de la jerarquía de memoria de un procesador Intel Xeon Skylake SP ejecutando los programas de SPEC CPU2006 y los mono-hilo de CPU2017. La experimentación se ha basado en varias herramientas disponibles en procesadores de altas prestaciones. Se ha utilizado la herramienta de profiling Perf para la lectura de los contadores hardware del procesador. Asimismo, se ha desarrollado la herramienta Perf++ que amplía las funcionalidades de Perf. Este soporte hardware de monitorización permite identificar fases temporales en base a cambios en la velocidad de ejecución de los programas. Se ha utilizado Intel Resource Directory, una tecnología presente en los procesadores Intel Xeon que permite limitar la asociatividad de la memoria cache del último nivel (Last Level Cache, LLC). De esta forma se puede analizar el comportamiento de los programas ante distintos tamaños del último nivel de la memoria cache. Además, mediante el registro de estado (MSR) se puede habilitar y deshabilitar los distintos prebuscadores hardware lo que permite analizar su influencia en la ejecución de los programas. Nuestros experimentos muestran que una parte importante de los programas provoca tasas de fallos muy bajas en la LLC, incluso con tamaños reducidos y sin prebúsqueda hardware. Aquellos programas que sí presionan los niveles superiores de cache han sido clasificados según su sensibilidad al tamaño de la LLC y a la prebúsqueda hardware. Hemos observado que aumentar el tamaño de la LLC reduce la tasa de fallos en LLC para muchos de estos programas. Por otra parte, la prebúsqueda hardware es muy eficiente: reduce los fallos en la LLC sin aumentar de forma significativa el ancho de banda utilizado. Por último, el análisis temporal de las programas muestra como la utilización de Simpoint no garantiza la identificación de puntos de simulación representativos desde el punto de vista del uso de la jerarquía de memoria

    Detección de reuso en LLC mediante filtros Bloom.

    Get PDF
    El acceso a memoria principal ha sido siempre el cuello de botella más notable en un sistema. Es por ello, por lo que establecer un uso eficiente del espacio disponible en cada nivel de la jerarquía de memoria permitirá mejorar notablemente las prestaciones del sistema. En este proyecto se estudia el uso de filtros de reuso para paliar dicha problemática. Estas estructuras permiten filtrar el contenido introducido en la cache de último nivel (LLC) para conseguir almacenar solamente aquellos bloques de memoria que presentan una alta probabilidad de reuso. Para ello, deben recordar direcciones de bloque que han provocado fallo en la LLC recientemente. Seshadri et al. (2012) proponen por primera vez el uso de esta estructura implementada mediante un filtro Bloom. Más tarde, se presentan otro tipo de implementaciones como ReD, donde se utiliza una estructura de datos organizada de forma similar a una cache. El filtro Bloom es una estructura probabilística que permite determinar si un elemento pertenece o no a un conjunto. Inicialmente fue diseñado para conjuntos estáticos, pero con el paso del tiempo se han llevado a cabo múltiples modificaciones a la estructura con el fin de adaptarla a nuevos escenarios donde se necesita trabajar con conjuntos dinámicos. Esto ha dado lugar a nuevos tipos de filtros Bloom con diferentes funcionalidades y características configurables. En este proyecto, se han seleccionado e implementado aquellos filtros Bloom que mejor se adaptan al problema. Estos son: Básico extendido, A2, SBF y SetReset. También se ha implementado un filtro ideal, Brain, usado para calificar la precisión de recuerdo de cada uno de los filtros estudiados. Los filtros se han implementado en el simulador ChampSim sobre sistemas mono-core y multi-core, y se han sintetizado sobre una FPGA.De esta forma, se busca conocer el número óptimo de direcciones a recordar, para que el sistema presente las mejores prestaciones posibles, y ajustar los parámetros de cada filtro Bloom en base a las métricas precisión de recuerdo, instrucciones por ciclo (IPC) y fallos por cada mil instrucciones (MPKI). Adicionalmente, se comparan las prestaciones de todos los filtros de reuso estudiados y el coste hardware de los filtros Bloom seleccionados.En base a los resultados obtenidos se concluye que no existe una correspondencia exacta entre tener un precisión de recuerdo alta y tener mejores prestaciones (IPC y MPKI). Por otro lado, utilizar un filtro de reuso permite mejorar las prestaciones tanto del sistema mono-core como del multi-core. Para el sistema mono-core se consiguen mejores resultados con la estructura ReD, mientras que para el multi-core es preferible incorporar el filtro A2 o Básico extendido. Por último, el impacto en área obtenido para los filtros Básico extendido, A2 y SetReset es similar e inferior al de SBF.<br /

    Investigating the effects of operation variables on all-vanadium redox flow batteries through an advanced unit-cell model

    Get PDF
    Next-generation redox flow batteries will benefit from the progress of macroscopic continuum models that enable the optimization of new architectures without the need of expensive fabrication and experimentation. Despite previous attempts, there is still need for robust and thoroughly validated models. Here, a steady-state two-dimensional unit-cell model of an all-vanadium redox flow battery is presented. The model integrates state-of-the-art descriptions of the fundamental physical phenomena, along with new features such as local mass transfer coefficients for each active species, precise sulfuric acid dissociation kinetics, and experimental data of the electrochemical parameters and electrolyte properties. The model is validated at different states of charge and flow rates using polarization, conductivity and open circuit voltage measurements. Then, the contribution of operating conditions on battery performance is studied by analyzing its separate effect on the various phenomena that affect cell performance, such as local pore mass transfer limitations, parasitic hydrogen evolution reactions, crossover and self-discharge fluxes. The resulting model is a reliable tool that can be used to assess the relevance of these coupled phenomena that take place simultaneously within the reaction cell. This important information is critical to optimize cell components, reactor design and to select optimal operating conditions.This work has been partially funded by the Agencia Estatal de Investigación (PID2019-106740RB-I00 and RTC-2017-5955-3/AEI/10.13039/501100011033). Dr. García-Salaberri also acnowledges the support of the projects EIN2020-112247 (Spanish Agencia Estatal de Investigación). The authors want to acknowledge Maxime van der Heijden for her critical feedback

    ReD: A reuse detector for content selection in exclusive shared last-level caches

    Get PDF
    The reference stream reaching a chip multiprocessor Shared Last-Level Cache (SLLC) shows poor temporal locality, making conventional cache management policies inefficient. Few proposals address this problem for exclusive caches. In this paper, we propose the Reuse Detector (ReD), a new content selection mechanism for exclusive hierarchies that leverages reuse locality at the SLLC, a property that states that blocks referenced more than once are more likely to be accessed in the near future. Being placed between each L2 private cache and the SLLC, ReD prevents the insertion of blocks without reuse into the SLLC. It is designed to overcome problems affecting similar recent mechanisms (low accuracy, reduced visibility window and detector thrashing). ReD improves performance over other state-of-the-art proposals (CHAR, Reuse Cache and EAF cache). Compared with the baseline system with no content selection, it reduces the SLLC miss rate (MPI) by 10.1% and increases harmonic IPC by 9.5%.Peer ReviewedPostprint (author's final draft

    Gestión de contenidos en caches operando a bajo voltaje

    Get PDF
    La eficiencia energética de las caches en chip puede mejorarse reduciendo su voltaje de alimentación (Vdd ). Sin embargo, este escalado de Vdd está limitado a una tensión Vddmin por debajo de la cual algunas celdas SRAM (Static Random Access Memory) puede que no operen de forma fiable. Block disabling (BD) es una técnica microarquitectónica que permite operar a tensiones muy bajas desactivando aquellas entradas que contienen alguna celda que no opera de forma fiable, aunque a cambio de reducir la capacidad efectiva de la cache. Se utiliza en caches de último nivel (LLC), donde el ahorro potencial es mayor. Sin embargo, para algunas aplicaciones, el incremento de consumo debido a los accesos a memoria fuera del chip no compensa el ahorro energético conseguido en la LLC. Este trabajo aprovecha recursos existentes en los multiprocesadores, como son la jerarqui´a de memoria en chip y el mecanismo de coherencia, para mejorar las prestaciones de BD. En concreto, proponemos explotar la redundancia natural existente en una jerarqui´a de cache inclusiva para mitigar la pérdida de rendimiento debida a la reducción en la capacidad de la LLC. También proponemos una nueva poli´tica de gestión de contenidos consciente de la existencia de entradas de cache defectuosas. Utilizando la información de reúso, el algoritmo de reemplazo asigna entradas de cache operativas a aquellos bloques con más probabilidad de ser referenciados. Las técnicas propuestas llegan a reducir el MPKI hasta en un 36.4 % respecto a block disabling, mejorando su rendimiento entre un 2 y un 13%.Peer ReviewedPostprint (author's final draft

    Compression-aware and performance-efficient insertion policies for long-lasting hybrid LLCs

    Get PDF
    Emerging non-volatile memory (NVM) technologies can potentially replace large SRAM memories such as the last-level cache (LLC). However, despite recent advances, NVMs suffer from higher write latency and limited write endurance. Recently, NVM-SRAM hybrid LLCs are proposed to combine the best of both worlds. Several policies have been proposed to improve the performance and lifetime of hybrid LLCs by intelligently steering the incoming LLC blocks into either the SRAM or NVM part, regarding the cache behavior of the LLC blocks and the SRAM/NVM device properties. However, these policies neither consider compressing the contents of the cache block nor using partially worn-out NVM cache blocks.This paper proposes new insertion policies for byte-level fault-tolerant hybrid LLCs that collaboratively optimize for lifetime and performance. Specifically, we leverage data compression to utilize partially defective NVM cache entries, thereby improving the LLC hit rate. The key to our approach is to guide the insertion policy by both the reuse properties of the block and the size resulting from its compression. A block is inserted in NVM only if it is a read-reuse block or its compressed size is lower than a threshold. It will be inserted in SRAM if the block is a write-reuse or its compressed size is greater than the threshold. We use set-dueling to tune the compression threshold at runtime. This compression threshold provides a knob to control the NVM write rate and, together with a rule-based mechanism, allows balancing performance and lifetime.Overall, our evaluation shows that, with affordable hardware overheads, the proposed schemes can nearly reach the performance of an SRAM cache with the same associativity while improving lifetime by 17× compared to a hybrid NVM-unaware LLC. Our proposed scheme outperforms the state-of-the-art insertion policies by 9% while achieving a comparative lifetime. The rule-based mechanism shows that by compromising, for instance, 1.1% and 1.9% performance, the NVM lifetime can be further increased by 28% and 44%, respectively.This work was partially funded by the HiPEAC collaboration grant 2020, the Center for Advancing Electronics Dresden (cfaed), the German Research Council (DFG) through the HetCIM project (502388442) under the Priority Program on ‘Disruptive Memory Technologies’ (SPP 2377), and from grants (1) PID2019-105660RB-C21 and PID2019-107255GB- C22/AEI/10.13039/501100011033 from Agencia Estatal de Investigación (AEI), and (2) gaZ: T5820R research group from Dept. of Science, University and Knowledge Society, Government of Aragon.Peer ReviewedPostprint (author's final draft

    A fault-tolerant last level cache for CMPs operating at ultra-low voltage

    Get PDF
    Voltage scaling to values near the threshold voltage is a promising technique to hold off the many-core power wall. However, as voltage decreases, some SRAM cells are unable to operate reliably and show a behavior consistent with a hard fault. Block disabling is a micro-architectural technique that allows low-voltage operation by deactivating faulty cache entries, at the expense of reducing the effective cache capacity. In the case of the last-level cache, this capacity reduction leads to an increase in off-chip memory accesses, diminishing the overall energy benefit of reducing the voltage supply. In this work, we exploit the reuse locality and the intrinsic redundancy of multi-level inclusive hierarchies to enhance the performance of block disabling with negligible cost. The proposed fault-aware last-level cache management policy maps critical blocks, those not present in private caches and with a higher probability of being reused, to active cache entries. Our evaluation shows that this fault-aware management results in up to 37.3% and 54.2% fewer misses per kilo instruction (MPKI) than block disabling for multiprogrammed and parallel workloads, respectively. This translates to performance enhancements of up to 13% and 34.6% for multiprogrammed and parallel workloads, respectively.Peer ReviewedPostprint (author's final draft

    Implementación de prebuscadores de cache para el procesador RISC-V DRAC

    Get PDF
    El tiempo de acceso a memoria es un elemento clave en el rendimiento de todo procesador moderno. Un mecanismo que permite reducir este tiempo es la prebúsqueda, que consiste en mover datos a las memorias cache antes de que sean solicitados por el procesador. Existen diversas aproximaciones de este mecanismo, en este trabajo se han explorado algunas de ellas.Por otra parte, la Unión Europea ha marcado como objetivo estratégico diseñar y fabricar procesadores de propósito general a través de la iniciativa EPI. La motivación tras esta iniciativa es la necesidad de desarrollar procesadores de diseño propio capaces de satisfacer una creciente demanda en computación a gran escala, a la vez que disminuir la dependencia de mercados externos. En el contexto de EPI, surgen muchos proyectos derivados, como el proyecto DRAC, cuyo objetivo es el desarrollo de un procesador de propósito general basado en la tecnología RISC-V y sus aceleradores, liderado por el CNS.Este trabajo fin de grado consiste en el estudio, simulación, implementación e integración de un prebuscador de instrucciones en un procesador real, con el deseo de que forme parte del chip que finalmente se fabrique. El objetivo principal en este TFG es adquirir un visión global de todas las fases involucradas en el desarrollo de un módulo en un procesador. El procesador elegido es Sargantana, una de las líneas de trabajo dentro del proyecto DRAC. Se han estudiado diversos mecanismos de prebúsqueda, de los cuales se han analizado sus prestaciones a través de la simulación, utilizando benchmarks SPEC como aplicaciones de referencia. Finalmente, se ha escogido un prebuscador para su implementación en RTL utilizando el lenguaje de descripción VHDL. Además de verificar el correcto funcionamiento de la implementación, se ha comprobado que sea rápida y de bajo coste en silicio. Para ello, se han analizado los resultados de síntesis en una FPGA. Por último, se ha trabajado en la integración con Sargantana.Durante el desarrollo de este trabajo se han puesto en práctica todos los conocimientos en el área de arquitectura adquiridos durante el grado. Tras él, se ha demostrado la aceleración que supone la prebúsqueda en un procesador y se ha comprendido la metodología a seguir en proyectos de la misma índole, además de descubrir su complejidad subyacente. Como finalización, se han planteado diversas vías para la continuación de este trabajo en un futuro. Se puede encontrar en https://github.com/Haz99/Sargantana-TFG} el repositorio del proyecto con los fuentes, scripts y casos de estudio utilizados.<br /
    • …
    corecore